class Prompt:
    template = {
        'cot':
            """To solve the problem, Please think and reason step by step, then answer.
question:
{question}
        
Generation Format:
Reasoning process:
Answer:
""",
        # TODO
        'anchoring': [
            """You are a cognitive scientist, to answer the following question:
{question}
I will provide you with several retrieved passages:
Passages:
{passages}

Task Description:
Please extract content that may be unfamiliar to the model from these passages, 
which can provide the model with relevant background and unknown knowledge and concepts, 
helping it better understand the question. and analyze the role of these contents.
""",
            """ Here is an answer generated by a language model with the reasoning process.
question:
{question}
answer:
{reply}
To provide the language model with relevant background and unknown knowledge and concepts, helping it better understand the question.
I retrieved some knowledge that is may unfamiliar with the model: 
knowledge:
{unknown_knowledge_reply}
Please verify the above reasoning process for errors, 
then enhance this reasoning process using retrieved knowledge to help it better understand the question,
Afterward, give the answer based on the enhanced reasoning process.

Generation Format:
knowledge enhanced inference process:
Answer:
"""
        ],
        'associate': [
            """ You are a cognitive scientist, to answer the following question:
{question}
I will provide you with several retrieved passages:
Passages:
{passages}

Task Description:
Please extract foundational knowledge that may be familiar to the model or advanced information beyond the model's already familiar foundational knowledge from these passages, and analyze the role of these contents.
Summarize and consolidate these contents, which should deepen the model's understanding of the question through familiarity with these basic and advanced pieces of information. 
This process aims to encourage the model to comprehend the question more thoroughly and expand its knowledge boundaries.
""",
            """ Here is an answer generated by a language model with the reasoning process.
question:
{question}
answer:
{reply}
To deepen the language model's understanding of the question through familiarity with basic and advanced pieces of information.
Encourage the language model to comprehend the question more thoroughly and expand its knowledge boundaries.
I retrieved some foundational knowledge that is familiar to the model or advanced information beyond the language model's already familiar foundational knowledge from these passages. 
knowledge:
{recite_knowledge_reply}
Please verify the above reasoning process for errors, 
then enhance this reasoning process using retrieved knowledge to deepen the understanding of the question through familiarity with basic and advanced pieces of information,
comprehend the question more thoroughly, and expand the knowledge boundaries.
Afterward, give the answer based on the enhanced reasoning process.

Generation Format:
knowledge enhanced inference process:
Answer:
"""
        ],
        'logician': [
            """You are a logician, to answer the following question:
{question}
I will provide you with several retrieved passages:
Passages:
{passages}

Task Description:
Please extract content from these passages that can help enhance the model's causal reasoning and logical inference abilities.
consolidate these contents, and analyze how the selected information may impact the improvement of the model's causal reasoning and logical inference capabilities.
""",
            """ Here is an answer generated by a language model with the reasoning process.
question:
{question}
answer:
{reply}
To improve the language model's causal reasoning and logical inference capabilities.
I retrieved some knowledge that can help enhance the language model's causal reasoning and logical inference abilities.
knowledge:
{logic_knowledge_reply}
Please verify the above reasoning process for errors, 
then enhance this reasoning process using retrieved knowledge to enhance the causal reasoning and logical inference abilities.
Afterward, give the answer based on the enhanced reasoning process.

Generation Format:
knowledge enhanced inference process:
Answer:
"""
        ],
        'cognition': [
            """ Fact-checking refers to the process of confirming the accuracy of a statement or claim through various sources or methods. 
This process aims to ensure that statements or claims are based on reliable and verifiable information while eliminating inaccurate or misleading content. 
Fact-checking may involve the examination of data, literature, expert opinions, or other trustworthy sources.
In the context of artificial intelligence, model illusion refers to the overconfidence response of the AI. 
When a model exhibits an 'illusion' (a tendency to output deceptive data), it indicates that the training data used by the model does not necessarily support the rationality of its outputs.
You are a scientist researching fact-checking and addressing model illusions in artificial intelligence. 
To answer the following question:
{question}
I will provide you with several retrieved passages:
Passages:
{passages}

Task Description:
Please extract content from these passages that may be contradictory to the model's existing knowledge. 
Identify information that, when added, could update the model's knowledge and prevent factual errors, alleviating model illusions. 
Note that these passages are retrieved from the most authoritative knowledge repositories, so they are assumed to be correct.
""",
            """ Here is an answer generated by a language model with the reasoning process.
question:
{question}
answer:
{reply}
To update the language model's knowledge and prevent factual errors, alleviating model illusions. 
I retrieved some knowledge that may update the language model's knowledge and prevent factual errors, alleviating model illusions
Note that these passages are retrieved from the most authoritative knowledge repositories, so they are assumed to be correct.
knowledge:
{fact_knowledge_reply}
Please verify the above reasoning process for errors, 
then enhance this reasoning process using retrieved knowledge to update the language model's knowledge, prevent factual errors and alleviate model illusions.
Afterward, give the answer based on the enhanced reasoning process.

Generation Format:
knowledge enhanced inference process:
Answer:
"""
        ]
    }

